package com.example.demofx.master;

import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Modality;
import javafx.stage.Stage;

import java.util.Optional;

public class SelectGroupWindow {

    private GroupManager groupManager;
    private ComboBox<Group> comboBox;

    public SelectGroupWindow(GroupManager groupManager) {
        this.groupManager = groupManager;
    }

    // 显示窗口并返回用户选择的组
    public Optional<Group> showAndWait() {
        Stage stage = new Stage();
        stage.initModality(Modality.APPLICATION_MODAL); // 设置为模态窗口
        stage.setTitle("选择组");

        // 创建 ComboBox 并加载所有组
        comboBox = new ComboBox<>();
        comboBox.getItems().addAll(groupManager.getGroups());
        comboBox.setPromptText("请选择一个组");
        comboBox.setPrefWidth(250); // 调整 ComboBox 的长度

        Button okButton = new Button("确定");
        okButton.setOnAction(e -> stage.close());

        // 使用 HBox 将按钮居中对齐
        HBox buttonBox = new HBox(okButton);
        buttonBox.setAlignment(Pos.CENTER); // 按钮水平居中
        buttonBox.setPadding(new Insets(10)); // 添加内边距

        // 使用 VBox 布局管理整个界面
        VBox root = new VBox(10, new Label("选择目标组:"), comboBox, okButton);
        root.setAlignment(Pos.TOP_CENTER); // 整体内容垂直居中
        root.setPadding(new Insets(20)); // 添加外边距

        Scene scene = new Scene(root, 300, 200);
        stage.setScene(scene);

        stage.showAndWait(); // 等待窗口关闭

        return Optional.ofNullable(comboBox.getValue());
    }
}